shell变量赋值进阶

您所在的位置:网站首页 shell 去空格赋值 shell变量赋值进阶

shell变量赋值进阶

2024-07-17 03:37| 来源: 网络整理| 查看: 265

首先,要理解shell中变量的3种赋值情况: unset 例子. unset a 空字符串, null 例子. a='' 非空,即不是unset,并且不是空字符串 例子: a=1 or a=b等 然后,简单说明有冒号的情况: := var=${str:="default"} str 非空, var=$str; 否则var=default; str=default :- var=${str:-"default"} str为unset或者空字符串,var=default,否则var=$str; 这种一般是shell中设置默认值 :+ var=${str:+"default"} str 非空,var=default,否则var和str都为空字符串 测试代码: #!/bin/bash var=before unset un_set null_str= str=1 var=${un_set-"default"};echo 'var=${un_set-"default"};' "var=$var" " un_set=${un_set}" var=${null_str-"default"};echo 'var=${null_str-"default"};' "var=$var" " null_str=${null_str}" var=${str-"default"};echo 'var=${str-"default"};' "var=$var" " str=${str}" var=${un_set:-"default"};echo 'var=${un_set:-"default"};' "var=$var" " un_set=${un_set}" var=${null_str:-"default"};echo 'var=${null_str:-"default"};' "var=$var" " null_str=${null_str}" var=${str:-"default"};echo 'var=${str:-"default"};' "var=$var" " str=${str}" echo "-------------------" echo var=${un_set+"default"};echo 'var=${un_set+"default"};' "var=$var" " un_set=${un_set}" var=${null_str+"default"};echo 'var=${null_str+"default"};' "var=$var" " null_str=${null_str}" var=${str+"default"};echo 'var=${str+"default"};' "var=$var" " str=${str}" var=${un_set:+"default"};echo 'var=${un_set:+"default"};' "var=$var" " un_set=${un_set}" var=${null_str:+"default"};echo 'var=${null_str:+"default"};' "var=$var" " null_str=${null_str}" var=${str:+"default"};echo 'var=${str:+"default"};' "var=$var" " str=${str}" echo "-------------------------" echo var=${un_set="default"};echo 'var=${un_set="default"};' "var=$var" " un_set=${un_set}" unset un_set;null_str=;str=abc; var=${null_str="default"};echo 'var=${null_str="default"};' "var=$var" " null_str=${null_str}" unset un_set;null_str=;str=abc; var=${str="default"};echo 'var=${str="default"};' "var=$var" " str=${str}" unset un_set;null_str=;str=abc; var=${un_set:="default"};echo 'var=${un_set:="default"};' "var=$var" " un_set=${un_set}" unset un_set;null_str=;str=abc; var=${null_str:="default"};echo 'var=${null_str:="default"};' "var=$var" " null_str=${null_str}" unset un_set;null_str=;str=abc; var=${str:="default"};echo 'var=${str:="default"};' "var=$var" " str=${str}" echo "-------------------------" echo

测试结果如下:

unset和空字符串是无法直接比较的

${:-} 和 ${-}的实例应用:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3